/**
 * 文件名称:  BaseEntity.java
 * 文件序号:  序号
 * 内容描述:  文件简单描述，多行换行书写
 * 版权声明:  山东鸿蝶信息技术有限公司
 * 创建用户:  zhangkai
 * 创建日期:  2017/1/11 10:28
 * 修改用户:  无
 * 修改日期:  无
 * 修改说明:  无
 * 文件版本:  V1.0
 * 文件路径:
 */

package com.hongdee.base.entity;


import org.hibernate.annotations.GenericGenerator;
import org.springframework.util.StringUtils;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import java.io.Serializable;
import java.util.Date;

/**
 * 名  称:BaseEntity
 * 类  型: class
 * 描  述: 公共实体类，为所有的表增加字典、创建人、创建时间、修改人、修改时间属性
 * 路  径:com.hongdee.base.entity
 * 作  者:zhangkai
 * 日  期:2017/1/11 10:28
 */
@MappedSuperclass
public class BaseEntity implements Serializable {

    /**
     * id 主键
     */

    @Id
    @GenericGenerator(name = "uuid", strategy = "uuid")
    @GeneratedValue(generator = "uuid")
    @Column(nullable = false, unique = true, columnDefinition = " VARCHAR(36) COMMENT '主键' ")
    private String id;
    /**
     * createTime 创建时间
     */


    @Column(name = "create_time", columnDefinition = " BIGINT COMMENT '创建时间' ")
    private Long createTime;
    /**
     * //createUser 创建人
     */

    @Column(name = "create_user", columnDefinition = " VARCHAR(32) COMMENT '创建人' ")
    private String createUser;
    /**
     * updateUser 修改人
     */

    @Column(name = "update_user", columnDefinition = " VARCHAR(32) COMMENT '修改人' ")
    private String updateUser;
    /**
     * updateTime 修改时间
     */
    @Column(name = "update_time", columnDefinition = " BIGINT COMMENT '更新时间' ")
    private Long updateTime;

    //部门ID
    @Column(name = "dept_id", columnDefinition = " VARCHAR(32) COMMENT '部门ID' ")
    private String dept_id;



    public String getDept_id() {
        return dept_id;
    }

    public void setDept_id(String dept_id) {
        this.dept_id = dept_id;
    }

    /**
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * @param id 主键
     */
    public void setId(String id) {
        if (StringUtils.isEmpty(id)) {
            id = null;
        }
        this.id = id;
    }

    /**
     * @return 创建时间
     */
    public Long getCreateTime() {
        return createTime;
    }

    /**
     * @param createTime 创建时间
     */
    public void setCreateTime(Long createTime) {
        if (null == createTime || createTime == 0) {
            createTime = new Date().getTime();
        }
        this.createTime = createTime;
    }

    /**
     * @return 创建人
     */
    public String getCreateUser() {
        return createUser;
    }

    /**
     * @param createUser 创建人
     */
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    /**
     * @return 更新人
     */
    public String getUpdateUser() {
        return updateUser;
    }

    /**
     * @param updateUser 更新人
     */
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    /**
     * @return 更新时间
     */
    public Long getUpdateTime() {
        return updateTime;
    }

    /**
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Long updateTime) {
        this.updateTime = new Date().getTime();
    }
}
